package com.zatech.cgnci.project.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zatech.cgnci.project.dto.CgnciClaimCaseQueryDTO;
import com.zatech.cgnci.project.entity.CgnciClaimCaseDO;
import com.zatech.cgnci.project.vo.CgnciClaimCasePageVO;
import com.zatech.cgnci.project.vo.CgnciClaimCasePageWorkbenchVO;
import com.zatech.cgnci.project.vo.CgnciClaimCaseVO;
import com.zatech.cgnci.project.vo.ClaimsInventoryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;


/**
 * <p>
 * 理赔案件主表 Mapper 接口
 * </p>
 *
 * @author Generator
 * @since 2024-12-23
 */
@Mapper
public interface CgnciClaimCaseMapper extends BaseMapper<CgnciClaimCaseDO> {

    /**
     * 分页查询理赔案件工作台
     */
    IPage<CgnciClaimCasePageWorkbenchVO> pageClaimCaseWorkbench(IPage<CgnciClaimCasePageWorkbenchVO> page, @Param("dto") CgnciClaimCaseQueryDTO queryDTO);

    /**
     * 分页查询理赔案件
     */
    IPage<CgnciClaimCasePageVO> pageClaimCase(IPage<CgnciClaimCasePageWorkbenchVO> page, @Param("dto") CgnciClaimCaseQueryDTO queryDTO);

    /**
     * 获取案件详情
     */
    CgnciClaimCaseVO getDetail(@Param("caseId") Long caseId);


    /**
     * 获取最大重开次数
     */
    Integer getMaxReopenCount(@Param("caseId") Long caseId);

    void updateCaseStatus(@Param("caseNo") String caseNo, @Param("caseStatus")  String caseStatus);

    List<ClaimsInventoryVO> queryInventory(@Param("startDate") Date startDate, @Param("endDate")Date endDate);
}